package ar.uade.distribuidas.tpo.dba.hbt;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateUtil {
	
	private static final SessionFactory sessionFactory;
    static
    {
        try
        {
        	 AnnotationConfiguration config = new AnnotationConfiguration();
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Cliente.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Empresa.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.ConsumidorFinal.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Proveedor.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Rodamiento.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.SolicitudDeCotizacion.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.ItemSolicitudDeCotizacion.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Cotizacion.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.ItemCotizacion.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Stock.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Politica.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Financiacion.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.PorCantidad.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.PorExcesoDeStock.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.PorMonto.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.MedioPago.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.CondicionDeVenta.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.ItemListaRodamiento.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.ListaPrecio.class);
        	 config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.ItemListaPrecio.class);
        	 //config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.ItemRemitoCPE.class);
        	 //config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.ItemRemito.class);
        	 //config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Remito.class);
        	 //config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.RemitoCPE.class);
        	 
             sessionFactory = config.buildSessionFactory();
        }
        catch (Throwable ex)
        {
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }
    public static SessionFactory getSessionFactory()
    {
        return sessionFactory;
    }

}
